<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2013 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");

session_start();
if(!isset($_SESSION['nombreUsuario']))
	exit();

function searchABMUsuarios()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");
	
	$datatables = new Datatables();
	
	$datatables
			->select('idUsuario, usuario, nombreCompleto, usuarios.eMail')
			->from('usuarios')
			->join('tipo_usuarios','usuarios.idTipoUsuario = tipo_usuarios.idTipoUsuario')
			->select('descripcion')
			->where("usuarios.estado <> '".$stateErase."'");

	return $datatables->generate();	
}

function addOrEdit()
{
	require("includes/constants.php");
	$mcrypt = new MCrypt();

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$DB->StartTrans(); // start transaction
		
	if(!isset($_REQUEST["idUsuario"])){
		$strSQL = "SELECT usuario FROM usuarios WHERE usuario = '".$_REQUEST["nombreUsuario"]."' AND estado <> '$stateErase'";
		$rsUsuarios = $DB->Execute($strSQL);		

		if(!$rsUsuarios->EOF)
		{
			$arrJSON->status = "ERROR";
			$arrJSON->msg = "El Nombre de Usuario ya existe";
			return json_encode($arrJSON);
		}
			
		$strSQL = "INSERT INTO usuarios ( ";
		$strSQL .= "	usuario, ";
		$strSQL .= "	password, ";
		$strSQL .= "	nombreCompleto, ";
		$strSQL .= "	eMail, ";
		$strSQL .= "	estado, ";
		$strSQL .= "	idTipoUsuario ";
		$strSQL .= "	) VALUES ( ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["nombreUsuario"], "UTF-8")."', ";
		$strSQL .= "	'".$mcrypt->encrypt($_REQUEST["password"])."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["nombreCompleto"], "UTF-8")."', ";
		$strSQL .= "	'".$_REQUEST["eMail"]."', ";
		$strSQL .= "	'".$stateAdd."', ";
		$strSQL .= "	".$_REQUEST["cmbTipoUsuario"];
		$strSQL .= "	)";
		
		$DB->Execute($strSQL);
	}
	else{
		$strSQL = "UPDATE usuarios SET ";
		$strSQL .= "	usuario = '".mb_strtoupper($_REQUEST["nombreUsuario"], "UTF-8")."', ";
		if(!empty($_REQUEST["password"]))
			$strSQL .= "	password = '".$mcrypt->encrypt($_REQUEST["password"])."', ";
		$strSQL .= "	nombreCompleto = '".mb_strtoupper($_REQUEST["nombreCompleto"], "UTF-8")."', ";
		$strSQL .= "	eMail = '".$_REQUEST["eMail"]."', ";
		$strSQL .= "	estado = '".$stateModify."',";
		$strSQL .= "	idTipoUsuario = ".$_REQUEST["cmbTipoUsuario"];
		$strSQL .= " WHERE idUsuario = ". $_REQUEST["idUsuario"];
		
		$DB->Execute($strSQL);
	}
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Grabar el Usuario";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Usuario fue Guardado con Exito";
	}	
	return json_encode($arrJSON);
}

function del()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	$DB->Execute("UPDATE usuarios SET estado = '$stateErase' WHERE idUsuario = " . $_REQUEST["idUsuario"]); // execute query

	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Eliminar el Usuario";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Usuario se Elimino Correctamente";
	}	
	return json_encode($arrJSON);
}

function getTipoUsuarios()
{
	require("includes/constants.php");

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsTipoUsuario = $DB->Execute("SELECT * FROM tipo_usuarios");
	
	$i=0;
	while(!$rsTipoUsuario->EOF){
		$arrTipoUsuarios->data[$i]['idTipoUsuario'] = $rsTipoUsuario->fields('idTipoUsuario');
		$arrTipoUsuarios->data[$i++]['descripcion'] = $rsTipoUsuario->fields('descripcion');
		$rsTipoUsuario->MoveNext();
	}
	
	return json_encode($arrTipoUsuarios->data);
}

function editUsuario()
{
	require("includes/constants.php");
	
	$mcrypt = new MCrypt();
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsUsuarios = $DB->Execute("SELECT * FROM usuarios WHERE estado <> '$stateErase' AND idUsuario = " . $_REQUEST["idUsuario"]); // execute query
						
	if(!$rsUsuarios->EOF){
		$joUsuario->data['nombreUsuario'] = $rsUsuarios->fields("usuario");
		$joUsuario->data['nombreCompleto'] = $rsUsuarios->fields("nombreCompleto");
		$joUsuario->data['eMail'] = $rsUsuarios->fields("eMail");
		$joUsuario->data['idTipoUsuario'] = $rsUsuarios->fields("idTipoUsuario");
		
		return json_encode($joUsuario->data);
	}
	else
		return json_encode(array());
}

switch($_REQUEST['accion'])
{
	case "EDIT":
		echo editUsuario();
		break;
	case "DELETE":
		echo del();
		break;
	case "search":
		echo searchABMUsuarios();
		break;
	case "addOrEdit":
		echo addOrEdit();
		break;		
	case "getTipoUsuarios":
		echo getTipoUsuarios();
		break;
}
?>
